AlgoWiki

Minkowski sum

The Minkowski sum of two sets of position vectors AA and BB in Euclidean space is formed by adding each vector in AA to each vector in BB, i.e., the set

A+B={a+baA, bB}.A + B = \{\mathbf{a}+\mathbf{b}\,|\,\mathbf{a}\in A,\ \mathbf{b}\in B\}.

Analogously, the Minkowski difference is defined as

AB={abaA, bB}.A - B = \{\mathbf{a}-\mathbf{b}\,|\,\mathbf{a}\in A,\ \mathbf{b}\in B\}.

Properties

For Minkowski addition, the zero set0{0}, containing only the zero vector 00, is an identity element: For every subset SS, of a vector space

S+0=S;S + {0} = S;

The empty set is important in Minkowski addition, because the empty set annihilates every other subset: for every subset, SS, of a vector space, its sum with the empty set is empty: S+=S + \emptyset = \emptyset

Minkowski addition behaves well with respect to the operation of taking convex hulls, as shown by the following proposition. For all non-empty subsets S1S_1 and S2S_2 of a real vector-space, the convex hull of their Minkowski sum is the Minkowski sum of their convex hulls,

Conv(S1+S2)=Conv(S1)+Conv(S2).\mathrm{Conv}(S_1 + S_2) = \mathrm{Conv}(S_1) + \mathrm{Conv}(S_2).

This result holds more generally for each finite collection of non-empty sets

Conv(ΣSn)=ΣConv(Sn).\mathrm{Conv}(\Sigma S_n) = \Sigma \mathrm{Conv}(S_n).

If SS is a convex set then also μS+λS\mu S+\lambda S is a convex set; furthermore μS+λS=(μ+λ)S\mu S+\lambda S=(\mu+\lambda)S for every μ,λ0\mu,\lambda \geq 0. Conversely, if this "distributive property" holds for all non-negative real numbers, μ,λ\mu, \lambda, then the set is convex.

Minkowski sums act linearly on the perimeter of two-dimensional convex bodies: the perimeter of the sum equals the sum of perimeters.

Algorithms for computing Minkowski sums

Planar case

Two convex polygons in the plane

For two convex polygonsPP and QQ in the plane with mm and nn vertices, their Minkowski sum is a convex polygon with at most m+nm + n vertices and may be computed in time O(m+n)O (m + n) by a very simple procedure, which may be informally described as follows. Assume that the edges of a polygon are given and the direction, say, counterclockwise, along the polygon boundary. Then it is easily seen that these edges of the convex polygon are ordered by polar angle. Let us merge the ordered sequences of the directed edges from PP and QQ into a single ordered sequence SS. Imagine that these edges are solid arrows which can be moved freely while keeping them parallel to their original direction. Assemble these arrows in the order of the sequence SS by attaching the tail of the next arrow to the head of the previous arrow. It turns out that the resulting polygonal chain will in fact be a convex polygon which is the Minkowski sum of PP and QQ

Other

If one polygon is convex and another one is not, the complexity of their Minkowski sum is O(nm)O(nm). If both of them are nonconvex, their Minkowski sum complexity is O((mn)2)O((mn)^2)

Problems